home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-06-03 | 1.8 KB | 77 lines |
- 10 REM SNAKE - A TRADITIONAL COMPUTER GAME
- 20 REM (C) 1982 PETER QUINN
- 30 DEFINT A-Z
- 40 TI=VAL(RIGHT$(TIME$,2))
- 50 RANDOMIZE TI
- 60 OPTION BASE 1
- 70 DIM P(2),D(2)
- 80 KEY OFF:CLS:SCREEN 0,0,0:WIDTH 80
- 90 DEF SEG=&H40
- 92 IF (PEEK(&H10) AND &H30)=&H30 THEN DEF SEG=&HB000 ELSE DEF SEG=&HB800
- 95 PRINT">>>>>>>>>>>>>>>>SNAKE>>>>>>>>>>>>>>>"
- 100 INPUT "ENTER VALUE FOR DELAY ('Q' FOR QUIT, 'RETURN' FOR SAME VALUE)";FF$
- 102 IF FF$="" THEN FF$=Z1$
- 103 Z1$=FF$
- 105 CLS:C=C+1
- 107 IF Z1$="" THEN Z1$="7000"
- 110 IF Z1$="Q" OR Z1$="q" THEN GOTO 650
- 130 Z=VAL(Z1$)
- 140 A=219:B=177
- 150 P(1)=2010
- 160 D(1)=2
- 170 P(2)=1990
- 180 D(2)=-2
- 190 R!=0.8
- 200 FOR I=0 TO 160 STEP 2
- 210 POKE I,178
- 220 POKE I+(4000-160),178
- 230 NEXT I
- 240 FOR I=0 TO 4000 STEP 160
- 250 POKE I,178
- 260 POKE I+158,178
- 270 NEXT
- 280 FOR I=11 TO 14
- 290 KEY (I) ON
- 300 NEXT
- 310 ON KEY(11) GOSUB 450
- 320 ON KEY(12) GOSUB 460
- 330 ON KEY(13) GOSUB 470
- 340 ON KEY(14) GOSUB 480
- 350 P(1)=P(1)+D(1)
- 360 P(2)=P(2)+D(2)
- 370 R!=R!+(1-R!)/20:N=N+1
- 380 IF PEEK(P(1))<>32 THEN GOTO 490
- 390 IF PEEK(P(2))<>32 THEN GOTO 500
- 400 POKE P(1),A
- 410 POKE P(2),B
- 420 GOSUB 510
- 430 FOR Q=1 TO Z:NEXT Q
- 440 GOTO 350
- 450 D(1)=-160:RETURN
- 460 D(1)=-2:RETURN
- 470 D(1)=2:RETURN
- 480 D(1)=160:RETURN
- 490 GOSUB 700:PRINT CHR$(11);"YOU LOSE ";:N=N/10:GOTO 600
- 500 GOSUB 710:PRINT CHR$(11);"YOU WIN ";:GOTO 600
- 510 IF PEEK(P(2)+D(2))=32 AND RND<R! THEN RETURN
- 520 IF ABS(D(2))=2 THEN D(2)=160:GOTO 560
- 530 IF ABS(D(2))=160 THEN D(2)=2
- 540 IF P(2)<2000 AND D(2)=160 THEN D(2)=-D(2)
- 550 GOTO 580
- 560 DI=P(2)/160
- 570 IF DI>12 THEN D(2)=-D(2):GOTO 580
- 580 IF PEEK(D(2)+P(2))<>32 THEN D(2)=-D(2)
- 590 RETURN
- 600 FOR I=1 TO 1000:NEXT
- 610 IF N>HIGH THEN HIGH=N
- 620 PT=PT+N:PRINT"SCORE:";N;" AVERAGE SCORE:";INT(PT/C);"HIGH SCORE:"HIGH
- 630 N=0
- 640 GOTO 100
- 650 PRINT"AVERAGE SCORE:";INT(PT/C);"HIGH SCORE:"HIGH
- 660 PRINT"THANKS FOR PLAYING"
- 670 END
- 700 FOR I=100 TO 50 STEP -5:NEXT 'LOSER SOUND
- 705 FOR I=1 TO 8:NEXT:RETURN
- 710 FOR I=200 TO 300 STEP 20:NEXT 'WINNER SOUND
- 715 FOR I=1 TO 2:NEXT:RETURN
-